Skip to content

plugin: add Safari extension control skill#51

Merged
gaelic-ghost merged 4 commits into
mainfrom
skill/safari-app-web-extensions
May 13, 2026
Merged

plugin: add Safari extension control skill#51
gaelic-ghost merged 4 commits into
mainfrom
skill/safari-app-web-extensions

Conversation

@gaelic-ghost
Copy link
Copy Markdown
Owner

@gaelic-ghost gaelic-ghost commented May 13, 2026

Summary

  • add safari-extension-control-workflow to apple-dev-skills
  • cover Safari Web Extensions, Web Inspector Extensions, App Extensions, Content Blockers, SafariServices control surfaces, messaging, testing, and distribution
  • bump shared Socket version surfaces to 6.8.0 for the coordinated minor release

Verification

  • bash .github/scripts/validate_repo_docs.sh
  • uv run pytest
  • uv run scripts/validate_socket_metadata.py

Summary by CodeRabbit

  • New Features

    • Added a Safari extension control workflow to guide choosing Safari integration paths and handoffs.
  • Documentation

    • Added comprehensive references for extension shapes, Web Inspector, SafariServices control surfaces, messaging/permissions, testing, and Xcode project guidance.
    • Updated README and ROADMAP to include Safari extension support.
  • Tools

    • Added a CLI to manage per-skill customization templates and durable overrides.
  • Tests

    • Added and updated tests validating the new workflow and customization surface.
  • Chores

    • Bumped project/plugin versions to 6.8.0.

Review Change Stack

@gaelic-ghost gaelic-ghost added the enhancement New feature or request label May 13, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 13, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: fde88e74-e128-4500-a187-67ecfa3f910f

📥 Commits

Reviewing files that changed from the base of the PR and between 5c9bf02 and 0721e22.

📒 Files selected for processing (2)
  • plugins/apple-dev-skills/skills/safari-extension-control-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/safari-extension-control-workflow/references/messaging-shared-data-and-permissions.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • plugins/apple-dev-skills/skills/safari-extension-control-workflow/references/messaging-shared-data-and-permissions.md

📝 Walkthrough

Walkthrough

This PR releases version 6.8.0 across all plugins and introduces a comprehensive Safari Extension Control Workflow skill in the Apple Dev Skills plugin. The workflow guides macOS developers through decision logic for selecting appropriate Safari integration surfaces (Web Extensions, Web Inspector Extensions, App Extensions, content blockers, SafariServices), with accompanying reference documentation, configuration management, and validation tests.

Changes

Version 6.8.0 Release with Safari Extension Control Workflow

Layer / File(s) Summary
Version bumps across plugins
plugins/*/.*codex-plugin/plugin.json, plugins/*/pyproject.toml, pyproject.toml
All plugin manifests and package versions are bumped from 6.7.26 to 6.8.0 across multiple files in a consistent pattern.
Apple Dev Skills manifest and plugin integration for Safari
plugins/apple-dev-skills/.codex-plugin/plugin.json
Plugin manifest is updated with Safari-specific keywords (safari, ios, macos), expanded description and interface text mentioning Safari extension/Web Inspector/SafariServices integration, and default prompt guidance for selecting the correct Safari integration path.
Safari Extension Control Workflow skill definition and reference docs
plugins/apple-dev-skills/skills/safari-extension-control-workflow/SKILL.md, plugins/apple-dev-skills/skills/safari-extension-control-workflow/references/*
Core skill documentation defines decision workflow, inputs/outputs, guards, and handoffs for choosing among Safari extension types. Comprehensive reference pages cover extension shape decisions (Web Extensions vs. App Extensions vs. content blockers), messaging/permissions, SafariServices control surfaces, Web Inspector extensions, testing/debugging/distribution, and baseline Xcode project standards.
Safari workflow agent interface and customization infrastructure
plugins/apple-dev-skills/skills/safari-extension-control-workflow/agents/openai.yaml, plugins/apple-dev-skills/skills/safari-extension-control-workflow/references/customization-flow.md, plugins/apple-dev-skills/skills/safari-extension-control-workflow/references/customization.template.yaml, plugins/apple-dev-skills/skills/safari-extension-control-workflow/scripts/customization_config.py
Agent configuration provides the workflow interface with display name and default prompt. Customization system includes schema template, customization flow documentation, and Python CLI script supporting path, effective, apply, and reset commands for loading, validating, merging, and persisting per-skill configuration.
Repository integration, validation scripts, and test updates
plugins/apple-dev-skills/.github/scripts/*, plugins/apple-dev-skills/README.md, plugins/apple-dev-skills/ROADMAP.md, plugins/apple-dev-skills/docs/maintainers/customization-consolidation-review.md, plugins/apple-dev-skills/tests/*
Script updates sync shared snippets into Safari workflow, expand active skill validation to include the new skill, update README/ROADMAP with new skill and Milestone 42 completion, update customization surface counts, and add tests verifying Safari workflow guidance content and customization template paths.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • gaelic-ghost/socket#50: Both PRs touch version fields in plugin/package manifests and the apple-dev-skills plugin configuration; this PR additionally introduces the Safari Extension Control Workflow skill.

Suggested labels

documentation

Poem

🐰 A new Safari path emerges bright,
Guiding macOS code left and right!
Extensions dancing—web and app,
Web Inspector fills the testing gap,
Version 6.8.0 hops into sight!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately summarizes the primary change: adding a new Safari extension control workflow skill to the apple-dev-skills plugin.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch skill/safari-app-web-extensions

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@plugins/apple-dev-skills/skills/safari-extension-control-workflow/references/messaging-shared-data-and-permissions.md`:
- Line 43: The wording for SFSafariPage.dispatchMessageToScript is ambiguous;
update the sentence to clearly state that this API is called from the extension
to send a message into the page's injected script context (extension-to-script
dispatch), rather than implying the message originates from the page; reference
SFSafariPage.dispatchMessageToScript in the revised phrasing so it reads like
"extension-side dispatch to the injected script context (use
SFSafariPage.dispatchMessageToScript)" to avoid confusion.

In `@plugins/apple-dev-skills/skills/safari-extension-control-workflow/SKILL.md`:
- Line 113: The recommendation line contains a duplicated term ("App
Extensions") in the phrase "SafariServices, Web Extensions, App Extensions,
AuthenticationServices, or App Extensions."; edit SKILL.md to remove the
redundant second "App Extensions" so the list reads correctly (e.g.,
"SafariServices, Web Extensions, App Extensions, AuthenticationServices" or
replace the duplicate with the intended API if different), ensuring the sentence
remains grammatical and user-facing guidance is clear.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: b74c04af-29cb-4b35-92dc-16a92284f350

📥 Commits

Reviewing files that changed from the base of the PR and between 1e4faa1 and 5c9bf02.

⛔ Files ignored due to path filters (8)
  • plugins/agent-plugin-skills/uv.lock is excluded by !**/*.lock
  • plugins/apple-dev-skills/uv.lock is excluded by !**/*.lock
  • plugins/cardhop-app/mcp/uv.lock is excluded by !**/*.lock
  • plugins/productivity-skills/uv.lock is excluded by !**/*.lock
  • plugins/python-skills/uv.lock is excluded by !**/*.lock
  • plugins/things-app/mcp/uv.lock is excluded by !**/*.lock
  • plugins/things-app/uv.lock is excluded by !**/*.lock
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (38)
  • plugins/agent-plugin-skills/.codex-plugin/plugin.json
  • plugins/agent-plugin-skills/pyproject.toml
  • plugins/apple-dev-skills/.codex-plugin/plugin.json
  • plugins/apple-dev-skills/.github/scripts/sync_shared_snippets.sh
  • plugins/apple-dev-skills/.github/scripts/validate_repo_docs.sh
  • plugins/apple-dev-skills/README.md
  • plugins/apple-dev-skills/ROADMAP.md
  • plugins/apple-dev-skills/docs/maintainers/customization-consolidation-review.md
  • plugins/apple-dev-skills/pyproject.toml
  • plugins/apple-dev-skills/skills/safari-extension-control-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/safari-extension-control-workflow/agents/openai.yaml
  • plugins/apple-dev-skills/skills/safari-extension-control-workflow/references/customization-flow.md
  • plugins/apple-dev-skills/skills/safari-extension-control-workflow/references/customization.template.yaml
  • plugins/apple-dev-skills/skills/safari-extension-control-workflow/references/extension-shape-decision.md
  • plugins/apple-dev-skills/skills/safari-extension-control-workflow/references/messaging-shared-data-and-permissions.md
  • plugins/apple-dev-skills/skills/safari-extension-control-workflow/references/safari-services-control-surfaces.md
  • plugins/apple-dev-skills/skills/safari-extension-control-workflow/references/snippets/apple-xcode-project-core.md
  • plugins/apple-dev-skills/skills/safari-extension-control-workflow/references/testing-debugging-and-distribution.md
  • plugins/apple-dev-skills/skills/safari-extension-control-workflow/references/web-inspector-extensions.md
  • plugins/apple-dev-skills/skills/safari-extension-control-workflow/scripts/customization_config.py
  • plugins/apple-dev-skills/tests/test_customization_consolidation_review.py
  • plugins/apple-dev-skills/tests/test_customization_template_paths.py
  • plugins/apple-dev-skills/tests/test_safari_extension_control_workflow.py
  • plugins/cardhop-app/.codex-plugin/plugin.json
  • plugins/cardhop-app/mcp/pyproject.toml
  • plugins/dotnet-skills/.codex-plugin/plugin.json
  • plugins/productivity-skills/.codex-plugin/plugin.json
  • plugins/productivity-skills/pyproject.toml
  • plugins/python-skills/.codex-plugin/plugin.json
  • plugins/python-skills/pyproject.toml
  • plugins/rust-skills/.codex-plugin/plugin.json
  • plugins/spotify/.codex-plugin/plugin.json
  • plugins/swiftasb-skills/.codex-plugin/plugin.json
  • plugins/things-app/.codex-plugin/plugin.json
  • plugins/things-app/mcp/pyproject.toml
  • plugins/things-app/pyproject.toml
  • plugins/web-dev-skills/.codex-plugin/plugin.json
  • pyproject.toml

Comment thread plugins/apple-dev-skills/skills/safari-extension-control-workflow/SKILL.md Outdated
@gaelic-ghost gaelic-ghost merged commit 02b876d into main May 13, 2026
2 checks passed
@gaelic-ghost gaelic-ghost deleted the skill/safari-app-web-extensions branch May 13, 2026 00:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant